Solana向けオープンソースストリームクライアント「Solana Stream SDK」が、Solana v3系アップグレードへの対応を完了しました。Rust版はCrate「solana-stream-sdk」v0.6.1、TypeScript/Node.js版はnpmパッケージ「@validators-dao/solana-stream-sdk」v0.12.0として公開され、いずれもShredsおよびGeyser gRPCのストリームをSolana v3仕様で処理できます。

Solana v3は、新コンセンサス「Alpenglow」導入に向けた移行フェーズで、ファイナリティ(取引確定時間)を約12秒から100〜150ミリ秒程度まで短縮することを目標としています。この高速化により、ブロック生成とデータ伝搬のテンポが刷新される一方、バリデータやRPCノードは頻繁なビルドやバージョン更新が必要となり、クライアントSDK側の対応遅れがレイテンシやデータ不整合の要因になりやすい状況でした。

Rust版v0.6.1は、非同期ランタイムとマルチスレッド設計により、高スループット環境でのShreds/Geyser gRPC処理を前提とした実装です。Shreds用protobuf定義のラッパを備え、プロトコル変更を織り込んだうえでストリーム処理ロジックを組み立てやすくしています。高速約定を求めるトレーダーやインデクサー向けのリファレンス実装として位置づけられています。

TypeScript版v0.12.0は、既存のイベント駆動インターフェース(emitter.onなど)を維持しつつ、内部エンジンにRustとNAPI-RSを採用しました。これにより、従来Node.js単体+@grpc/grpc-jsでは処理しきれなかった大量Shredsを、Rust側で非同期処理・protobufデシリアライズすることでバックプレッシャーを抑制し、Node.js側はイベント処理に集中できる構成としています。開発者はpackage.jsonのバージョンを0.12.0へ更新するだけで、Solana v3対応と性能改善を同時に得られるとしています。

Shredsは最も低レイテンシで情報量が多い一方、クライアント性能を強く要求するストリームです。Geyser gRPCはスロットやトランザクションなどを構造化して扱いやすくしたストリームで、必ずしも最速ではありません。Solana Stream SDKは両者を1つのSDK群でカバーし、まずGeyser gRPCで開発・検証を行い、その後同じコードベースからShredsへと段階的に移行できる設計としています。

今後SolanaネットワークがAlpenglow本格導入によりさらに高速化するなか、バリデータ/RPC側のアップグレードに加え、クライアントSDKを含めたエンドツーエンドでのv3対応が、取引やインデックス処理の優位性を左右するとみられます。オープンソースとして公開されるSolana Stream SDKの採用状況やコミュニティからのフィードバックが、Solanaのリアルタイムアプリケーション基盤の成熟度を測る一つの指標となりそうです。

【ツール・サービス情報】

Solana Stream SDK Rust版(v0.6.1)

https://crates.io/crates/solana-stream-sdk

Solana Stream SDK TypeScript版(v0.12.0)

https://www.npmjs.com/package/@validators-dao/solana-stream-sdk

GitHub – Solana Stream SDK

https://github.com/ValidatorsDAO/solana-stream

ERPC(ShredStreamトライアル)

https://erpc.global/ja

source: PR TIMES

Share.